#include "toolbar.h"

ToolBar::ToolBar(QWidget *parent) : QToolBar(parent) {
    initToolBar(); // 初始化工具栏
}

ToolBar::~ToolBar() {
    // 清理动作
    delete m_runAction;
    delete m_stopAction;
    delete m_openTableAction;
}

void ToolBar::initToolBar() {
    // 创建动作
        m_runAction = new QAction("Run", this);
        m_stopAction = new QAction("Stop", this);
        m_openTableAction = new QAction("Open Table", this);

        // 添加动作到工具栏
        addAction(m_runAction);
        addAction(m_stopAction);
        addAction(m_openTableAction);

        // 默认启用状态：只有 Run 按钮可用
        m_runAction->setEnabled(true);
        m_stopAction->setEnabled(false);

        // 连接信号和槽
        connect(m_runAction, &QAction::triggered, this, &ToolBar::slotRun);
        connect(m_stopAction, &QAction::triggered, this, &ToolBar::slotStop);
        connect(m_openTableAction, &QAction::triggered, this, &ToolBar::slotOpenTable);

}

void ToolBar::slotRun() {
   emit signalRun(); // 发射启动信号
   m_runAction->setEnabled(false); // 禁用 Run 按钮
   m_stopAction->setEnabled(true); // 启用 Stop 按钮
}

void ToolBar::slotStop() {
    emit signalStop(); // 发射停止信号
    m_runAction->setEnabled(true); // 启用 Run 按钮
    m_stopAction->setEnabled(false); // 禁用 Stop 按钮
}

void ToolBar::slotOpenTable() {
    emit signalOpenTable(); // 发射打开 TableView 信号
}
void ToolBar::updateRunStopButtons(bool isThreadRunning) {
    // 根据线程状态更新按钮状态
    m_runAction->setEnabled(!isThreadRunning);
    m_stopAction->setEnabled(isThreadRunning);
}
